package visual;

import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.GregorianCalendar;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

import daoHibernate.DaoActualizacionStock;
import daoHibernate.DaoRodamiento;
import entidades.ActualizacionStock;
import entidades.Rodamiento;

public class modificarStock extends JFrame{
	Container c;
	private JLabel lblStockActual;
	private JLabel lblStockNuevo;
	private JLabel txtStockActual;
	private JTextField txtStockNuevo;
	private JButton btnAceptar;
	private JButton btnCancelar;
	private JFrame ventana = this;//Me permite despues poder dejar de mostrar esta pantalla.

	
	public modificarStock(final int id){
		c=this.getContentPane();
		this.setVisible(true);
		this.setTitle("Modificar Stock");
		lblStockActual=new JLabel("Stock actual: ");
		lblStockNuevo=new JLabel("Stock nuevo: ");
		txtStockActual=new JLabel(String.valueOf(DaoRodamiento.getInstancia().consultarStock(id)));
		txtStockNuevo=new JTextField();
		btnAceptar=new JButton("Aceptar");
		btnCancelar=new JButton("Cancelar");
		c.setLayout(new GridLayout(3,2));
		c.add(this.lblStockActual);
		c.add(this.txtStockActual);
		c.add(this.lblStockNuevo);
		c.add(this.txtStockNuevo);
		c.add(this.btnCancelar);
		c.add(this.btnAceptar);
		btnCancelar.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {
				dispose();
				//Vuelve a mostrar la pantalla principal:
				AdministrarStock a = new AdministrarStock();
				a.setVisible(true);
				ventana.dispose();
			}
		});
		btnAceptar.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {
				Rodamiento r=DaoRodamiento.getInstancia().buscarRodamientoPorId(id);
				r.setCantStock(Integer.parseInt(txtStockNuevo.getText()));
				DaoRodamiento.getInstancia().modificarRodamiento(r);
				DaoActualizacionStock.getInstancia().saveActualizacionStock(new ActualizacionStock(Integer.parseInt(txtStockNuevo.getText())
						,new GregorianCalendar(),r));
				dispose();
				
				
				//Vuelve a mostrar la pantalla principal:
				AdministrarStock a = new AdministrarStock();
				a.setVisible(true);
				ventana.dispose();
			}
		});
		this.pack();
	}
}
